#ifndef TOKENINTEXP
#define TOKENINTEXP
#include "Token.h"
#include "Value.h"
#include <string>
class TokenInt: public Token
{
protected:
	ValueInt* result;
public:
	TokenInt(const std::string& ToParse = ""): Token(ToParse), result(NULL) {}
	~TokenInt() {delete result;}
	ValueInt getResult() {if (result == NULL) run(); return *result;}
	void run(bool enabled = true);
};
class TokenIntMul: public TokenInt
{
public:
	TokenIntMul(const std::string& ToParse = ""): TokenInt(ToParse) {}
	void run(bool enabled = true);
};
class TokenIntExp: public TokenInt
{
public:
	TokenIntExp(const std::string& ToParse = ""): TokenInt(ToParse) {}
	void run(bool enabled = true);
};
#endif

